﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DADOS;
using DADOS.auxiliares;
using DADOS.usuario;

namespace PROAD.atendimento.Forms
{
    public partial class FormEntrevistaCuidador : System.Web.UI.Page
    {
        metMedicamentos metMedCuid = new metMedicamentos();
        metEntrevista metEntre = new metEntrevista();
        metCuidador metCuid = new metCuidador();

        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                if (Request.QueryString["codCuid"] != null)
                {

                    MontarGrid();
                    MontarTela(Convert.ToInt32(Request.QueryString["codCuid"]));
                    CarregarCuidador(Convert.ToInt32(Request.QueryString["codCuid"]));
                }
            }
        }
        protected void rtsDadoPaciente_TabClick(object sender, Telerik.Web.UI.RadTabStripEventArgs e)
        {
            if (e.Tab.TabIndex == 1)
            {
                Response.Redirect("/atendimento/Forms/EtapaPreditivaAnamnese.aspx");
            }
            else if (e.Tab.TabIndex == 0)
            {
                Response.Redirect("/atendimento/Consulta/ConsultaDadosPaciente.aspx");
            }
        }

        protected void ddlRevezaAtividade_SelectedIndexChanged(object sender, EventArgs e)
        {
            pnlReveza.Visible = ddlRevezaAtividade.SelectedValue == "1";
        }

        protected void rblMedicamento_SelectedIndexChanged(object sender, EventArgs e)
        {
           pnlMedicamento.Visible = rblMedicamento.SelectedValue == "1";
        }

        protected void lkbIncMedicamento_Click(object sender, EventArgs e)
        {
            ModalPopupMed.Show();
        }

        private bool validarMedCuid ()
        {
            if (string.IsNullOrEmpty(txtNmMed.Text))
            {
                lblAlerta.Text = "Nome do medicamento obrigatório";
                ModalPopupMed.Show();
                return false;

            }
            if (string.IsNullOrEmpty(txtHotrario.Text))
            {
                lblAlerta.Text = "Horário do medicamento obrigatório";
                ModalPopupMed.Show();
                return false;
            }
            if (string.IsNullOrEmpty(txtDosagem.Text))
            {
                lblAlerta.Text = "Dosagem do medicamento obrigatório";
                ModalPopupMed.Show();
                return false;
            }
            return true;
        }

        private bool validarFormCuid ()
        {
            if (ddlComprometeRenda.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para a questão '1'";
                ModalPopupMsn.Show();
                return false;  
            }
            if (ddlSexo.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Sexo do cuidador obrigatório.";
                ModalPopupMsn.Show();
                return false;
            }

           
            
            if (ddlTempoCuidador.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Tempo de cuidador";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlRevezaAtividade.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Reveza Atividade";
                ModalPopupMsn.Show();
                return false;
            }
            if(ddlRevezaAtividade.SelectedValue == "1")
            {
                if (string.IsNullOrEmpty(txtRevezaAtividade.Text))
                {
                    txtTituloMsn.Text = "ALERTA";
                    txtTextoMsn.Text = "Obrigatorio preencher quem reveza cuidador.";
                    ModalPopupMsn.Show();
                    return false;
                }
            }
            if (string.IsNullOrEmpty(txtQueixas.Text))
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Principais queixas campo obrigatório.";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlProbSaude.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Problemas de saúde?";
                ModalPopupMsn.Show();
                return false;
            }
            if (rblEscolaridade.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Escolaridade";
                ModalPopupMsn.Show();
                return false;
            }
            if (rblTrabalho.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Está trabalhando";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlOrientacaoCuidado.SelectedValue == "0")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Orientação de cuiadado";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlDorDiaDia.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Dor no dia-a-dia";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlCansadoFimDia.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Cansaço no fim do dia";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlHorasCuidador.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Horas de cuidador";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlDiversaoLazer.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Faz atividade de diversão/lazer";
                ModalPopupMsn.Show();
                return false;
            }

            if (ddlDificDormir.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Dificuldade para dormir";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlRemedioDormir.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Medicamento para dormir";
                ModalPopupMsn.Show();
                return false;
            }
            if (ddlRemedioDormir.SelectedValue == "")
            {
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Selecione uma opção para: Medicamento para dormir";
                ModalPopupMsn.Show();
                return false;
            }
            return true;
        }

        protected void CarregarCuidador(int codCuid)
        {
            var objCuid = metCuid.GetCuidadorByCod(codCuid);

            txtNomeCompleto.Text = objCuid.NO_CUIDADOR;
            txtNomeCompleto.Enabled = false;
            ddlSexo.SelectedValue = objCuid.NR_SEXO.ToString();
            ddlSexo.Enabled = false;
            txtIdade.Text = objCuid.NR_IDADE.ToString();
            txtIdade.Enabled = false;


        }

        protected void btnSalvarFeridas_Click(object sender, EventArgs e)
        {
            var objMedCuid = new DADOS.TB_MEDICAMENTOS_CUIDADOR();
            if(validarMedCuid())
            {
                objMedCuid.CO_CUIDADOR = Convert.ToInt32(Request.QueryString["codCuid"]);
                objMedCuid.CO_PROFISSIONAL = Convert.ToInt32(Session["CO_PROFISSIONAL"]);
                objMedCuid.DS_DOSAGEM = txtDosagem.Text;
                objMedCuid.DS_HORARIO = txtHotrario.Text;
                objMedCuid.DT_INCLUSAO = DateTime.Now;
                objMedCuid.NO_MEDICAMENTO = txtNmMed.Text;

                try
                {
                    metMedCuid.IncluirMedCuidador(objMedCuid);
                    txtTituloMsn.Text = "ALERTA";
                    txtTextoMsn.Text = "Medicamento incluido com sucesso.";
                    ModalPopupMsn.Show();
                }
                catch (Exception)
                {
                    txtTituloMsn.Text = "ALERTA";
                    txtTextoMsn.Text = "Medicamento não incluido, tente mais tarde.";
                    ModalPopupMsn.Show();
                }
            }
                
        }

        protected void gdrMedicamentos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if(e.CommandName == "Excluir")
            {
                var id = e.CommandArgument;

                metMedCuid.ExcluirMedCuidador(Convert.ToInt32(id));
                txtTituloMsn.Text = "ALERTA";
                txtTextoMsn.Text = "Medicamento excluido com sucesso.";
                ModalPopupMsn.Show();
                ModalPopupMed.Show();
            }
        }

        private void MontarGrid()
        {
            var objMedicCuid = metMedCuid.ListaMedCuidador(Convert.ToInt32(Request.QueryString["codCuid"]));

            gdrMedicamentos.DataSource = objMedicCuid;
            gdrMedicamentos.DataBind();
        }

        private void MontarTela(int codCuid)
        {
            var codEntrevCuid = metEntre.TemEntrevista(codCuid);
            if(codEntrevCuid != 0)
            {
                var objEntreCuid = metEntre.GetEntrevistaByCod(codEntrevCuid);


                ddlComprometeRenda.SelectedValue = objEntreCuid.NR_Q_1.ToString();
                txtNomeCompleto.Text = objEntreCuid.NR_Q_2;
                ddlSexo.SelectedValue = objEntreCuid.NR_Q_3.ToString();
                txtIdade.Text = objEntreCuid.NR_Q_4.ToString();
                ddlTempoCuidador.SelectedValue = objEntreCuid.NR_Q_5.ToString();
                ddlRevezaAtividade.SelectedValue = objEntreCuid.NR_Q_6.ToString();
                if (!string.IsNullOrEmpty(objEntreCuid.NR_Q_6_QUEM)) txtRevezaAtividade.Text = objEntreCuid.NR_Q_6_QUEM;
                ddlProbSaude.SelectedValue = objEntreCuid.NR_Q_7.ToString();
                txtQueixas.Text = objEntreCuid.NR_Q_8;
                rblMedicamento.SelectedValue = objEntreCuid.NR_Q_9.ToString();
                rblEscolaridade.SelectedValue = objEntreCuid.NR_Q_10.ToString();
                rblTrabalho.SelectedValue = objEntreCuid.NR_Q_11.ToString();
                ddlOrientacaoCuidado.SelectedValue = objEntreCuid.NR_Q_12.ToString();
                ckbAtividadeCuidador1.Checked = objEntreCuid.NR_Q_13_A1 == 1;
                ckbAtividadeCuidador2.Checked = objEntreCuid.NR_Q_13_A2 == 1;
                ckbAtividadeCuidador3.Checked = objEntreCuid.NR_Q_13_A2 == 1;
                ckbAtividadeCuidador4.Checked = objEntreCuid.NR_Q_13_A4 == 1;
                ckbAtividadeCuidador5.Checked = objEntreCuid.NR_Q_13_A5 == 1;
                ckbAtividadeCuidador6.Checked = objEntreCuid.NR_Q_13_A6 == 1;
                ckbAtividadeCuidador7.Checked = objEntreCuid.NR_Q_13_A7 == 1;
                ckbAtividadeCuidador8.Checked = objEntreCuid.NR_Q_13_A8 == 1;
                ddlDorDiaDia.SelectedValue = objEntreCuid.NR_Q_14_A1.ToString();
                ddlCansadoFimDia.SelectedValue = objEntreCuid.NR_Q_14_A2.ToString();
                ddlHorasCuidador.SelectedValue = objEntreCuid.NR_Q_14_A3.ToString();
                ddlDiversaoLazer.SelectedValue = objEntreCuid.NR_Q_14_A4.ToString();
                ddlDificDormir.SelectedValue = objEntreCuid.NR_Q_15_A1.ToString();
                ddlRemedioDormir.SelectedValue = objEntreCuid.NR_Q_15_A2.ToString();

                btnEditar.Visible = true;
                btnSalvarEntrevista.Visible = false;

            }
           
            
        }

        protected TB_ENTREVISTA_CUIDADOR MontarObjEntrevista()
        {
            var objEntrevista = new TB_ENTREVISTA_CUIDADOR();

            objEntrevista.CO_CUIDADOR = Convert.ToInt32(Request.QueryString["codCuid"]);
            objEntrevista.CO_PROFISSIONAL = Convert.ToInt32(Session["CO_PROFISSIONAL"]);
            objEntrevista.DT_INCLUSAO = DateTime.Now;
            objEntrevista.NR_Q_1 = Convert.ToInt32(ddlComprometeRenda.SelectedValue);
            objEntrevista.NR_Q_2 = txtNomeCompleto.Text;
            objEntrevista.NR_Q_3 = Convert.ToInt32(ddlSexo.SelectedValue);
            objEntrevista.NR_Q_4 = Convert.ToInt32(txtIdade.Text);
            objEntrevista.NR_Q_5 = Convert.ToInt32(ddlTempoCuidador.SelectedValue);
            objEntrevista.NR_Q_6 = Convert.ToInt32(ddlRevezaAtividade.SelectedValue);
            if (!string.IsNullOrEmpty(txtRevezaAtividade.Text)) objEntrevista.NR_Q_6_QUEM = txtRevezaAtividade.Text;
            objEntrevista.NR_Q_7 = Convert.ToInt32(ddlProbSaude.SelectedValue);
            objEntrevista.NR_Q_8 = txtQueixas.Text;
            objEntrevista.NR_Q_9 = Convert.ToInt32(rblMedicamento.SelectedValue);
            objEntrevista.NR_Q_10 = Convert.ToInt32(rblEscolaridade.SelectedValue);
            objEntrevista.NR_Q_11 = Convert.ToInt32(rblTrabalho.SelectedValue);
            objEntrevista.NR_Q_12 = Convert.ToInt32(ddlOrientacaoCuidado.SelectedValue);
            objEntrevista.NR_Q_13_A1 = ckbAtividadeCuidador1.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A2 = ckbAtividadeCuidador2.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A3 = ckbAtividadeCuidador3.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A4 = ckbAtividadeCuidador4.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A5 = ckbAtividadeCuidador5.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A6 = ckbAtividadeCuidador6.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A7 = ckbAtividadeCuidador7.Checked ? 1 : 0;
            objEntrevista.NR_Q_13_A8 = ckbAtividadeCuidador8.Checked ? 1 : 0;
            objEntrevista.NR_Q_14_A1 = Convert.ToInt32(ddlDorDiaDia.SelectedValue);
            objEntrevista.NR_Q_14_A2 = Convert.ToInt32(ddlCansadoFimDia.SelectedValue);
            objEntrevista.NR_Q_14_A3 = Convert.ToInt32(ddlHorasCuidador.SelectedValue);
            objEntrevista.NR_Q_14_A4 = Convert.ToInt32(ddlDiversaoLazer.SelectedValue);
            objEntrevista.NR_Q_15_A1 = Convert.ToInt32(ddlDificDormir.SelectedValue);
            objEntrevista.NR_Q_15_A2 = Convert.ToInt32(ddlRemedioDormir.SelectedValue);

            return objEntrevista;
        }

        protected void btnSalvarEntrevista_Click(object sender, EventArgs e)
        {
           
            if (validarFormCuid())
            {
                var objEntre = MontarObjEntrevista();
                try
                {
                    metEntre.Incluir(objEntre);
                    Response.Redirect("/atendimento/Forms/FormSocioEconomico.aspx");
                }
                catch (Exception)
                {
                    txtTituloMsn.Text = "ALERTA";
                    txtTextoMsn.Text = "Entrevista não incluída, tente mais tarde.";
                    ModalPopupMsn.Show();
                }
            }
        }

        protected void btnEditar_Click(object sender, EventArgs e)
        {
            var objEntre = MontarObjEntrevista();
            var intCodEntrev = metEntre.TemEntrevista(objEntre.CO_CUIDADOR);

            objEntre.CO_ENTREVISTA_CUIDADOR = intCodEntrev;

            if (validarFormCuid())
            {
                try
                {
                   
                    metEntre.Alterar(objEntre);
                    Response.Redirect("/atendimento/Forms/FormSocioEconomico.aspx");
                }
                catch (Exception)
                {
                    txtTituloMsn.Text = "ALERTA";
                    txtTextoMsn.Text = "Entrevista não alterada, tente mais tarde.";
                    ModalPopupMsn.Show();
                }
            }
        }
        
    }
}